// 1.冒泡排序

// 思路：

//  对未排序的各元素从头到尾依次比较相邻的两个元素大小关系
//  如果左边的队员高, 则两队员交换位置
//  向右移动一个位置, 比较下面两个队员
//  当走到最右端时, 最高的队员一定被放在了最右边
//  按照这个思路, 从最左端重新开始, 这次走到倒数第二个位置的队员即可.
//  依次类推, 就可以将数据排序完成

//  大 O 表示法

//  比较次数：O(N^2)
//  交换次数：O(N^2)
// function bubbleSort(arr) {
//   let length = arr.length;
//   for (let i = length - 1; i >= 0; i--) {
//     for (let j = 0; j < i; j++) {
//       if (arr[j] > arr[j + 1]) {
//         [arr[j], arr[j + 1]] = [arr[j + 1], arr[j]];
//       }
//     }
//   }
//   return arr;
// }
const bubbleSort = (arr) => {
  let length = arr.length;
  if (length === 0) {
    return null;
  }
  for (let i = 0; i < length; i++) {
    for (let j = length - 1; j > i; j--) {
      if (arr[j] < arr[j - 1]) {
        [arr[j], arr[j - 1]] = [arr[j - 1], arr[j]];
      }
    }
  }
  return arr;
};

const test = [765, 234, 547, 241, 62, 124, 6, 232, 3, 2];
console.log(bubbleSort(test));
